/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package simulador;

import Protocolo.*;
import java.util.ArrayList;

/**
 *
 * @author jccaicedo
 */
public class SimuladorServidor implements ObservarProtocolo{

    private ArrayList<ConexionServidorACliente> lista;
    private ArrayList<String> usuarios;

    public SimuladorServidor(){
        lista = new ArrayList<ConexionServidorACliente>();
        usuarios= new ArrayList();
        ConexionServidor cs = new ConexionServidor(4444);
        while(true){
            try{
                ConexionServidorACliente o = cs.recibirConexion();
                o.agregarObservador(this);    
                System.out.println("Aceptando conexion");
                usuarios.add(o.getNombre());
                for(ConexionServidorACliente c: lista){
                    c.setListaUsuarios(usuarios);
                }
                lista.add(o);
            }catch(Exception ex){
                ex.printStackTrace();
            }
        }
    }

    public void notificarLista(String l){
        //Vacio!!
    }

    public void recibirMensaje(String usuario, String mensaje) {
        System.out.println(usuario + " dice " + mensaje);
        // Redistribuir a todos los usuarios:
        for(ConexionServidorACliente csac: lista){
            csac.enviarMensaje(usuario + ":"+mensaje);
        }
    }

    public static void main(String[] args){
        new SimuladorServidor();

                 /*usuarios= new ArrayList();
                usuarios.add("felipe");
                usuarios.add("carlos");
                usuarios.add("juan");
                usuarios.add("maria");
                usuarios.add("aleja");
*/    }

}
